home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / VT52.D < prev    next >
Encoding:
Modula Definition  |  1990-10-24  |  4.0 KB  |  89 lines

  1. DEFINITION MODULE VT52;
  2.  
  3. (*
  4.  * Dies Modul definiert die VT-52 Codes als String-Konstante.
  5.  *
  6.  * In der Aufzählungs-Type 'Codes' werden alle vorhandenen VT-52 Codes
  7.  * definiert. Zugriff auf die ihnen entsprechenden Strings mit der
  8.  * ESC-Sequenz erhält man über das 'Seq'-Feld.
  9.  *
  10.  * Zur Verwendung der Bezeichner dieses Moduls wird unqualifizierter
  11.  * Import empfohlen.
  12.  *
  13.  * Beispiel:
  14.  *
  15.  *  IMPORT VT52;
  16.  *  BEGIN
  17.  *    WriteString ( VT52.Seq [VT52.clearScreen] )
  18.  *
  19.  * Es ginge auch:
  20.  *
  21.  *   IMPORT VT52;
  22.  *   FROM VT52 IMPORT Codes;
  23.  *   BEGIN
  24.  *     WriteString ( VT52.Seq [clearScreen] )
  25.  *)
  26.  
  27. FROM Characters IMPORT ESC, LF, CR;
  28.  
  29. TYPE Codes = (
  30.   up, down, right, left,                   (* Bewegen Cursor auf Bildschirm *)
  31.   moveUp,   (* Reverse LF: bewegt Cursor auf, am oberen Rand wird gescrollt *)
  32.   moveDown,  (* Line Feed: bewegt Cursor ab, am unteren Rand wird gescrollt *)
  33.   home,                                      (* Cursor in linke, obere Ecke *)
  34.   firstCol,                                       (* Cursor an Zeilenbeginn *)
  35.   gotoRowCol,       (* Cursor positionieren, es folgen CHR(Y+32), CHR(X+32) *)
  36.   saveRowCol,                                   (* Speichert Cursorposition *)
  37.   restoreRowCol,                            (* Stellt Cursorpos. wieder her *)
  38.   clearScreen,                                  (* Löscht ganzen Bildschirm *)
  39.   clearEOS,                       (* Löscht ganzen Bildschirm ab Cursorpos. *)
  40.   clearEOL,                          (* Löscht aktuelle Zeile ab Cursorpos. *)
  41.   clearBOS,                  (* Löscht ganzen Bildschirm bis vor Cursorpos. *)
  42.   clearBOL,                     (* Löscht aktuelle Zeile bis vor Cursorpos. *)
  43.   clearLine,                                       (* Löscht aktuelle Zeile *)
  44.   insertLine,              (* Fügt neue Zeile ein, restl. Zeilen nach unten *)
  45.   deleteLine,             (* Entfernt akt. Zeile, rückt Rest von unten nach *)
  46.   writingColor,       (* Schriftfarbe bestimmen, es folgt CHR (64+Farbwert) *)
  47.   backgroundColor,(* Hintergrundfarbe bestimmen, es folgt CHR (64+Farbwert) *)
  48.   cursorOn, cursorOff,                 (* Cursor sichtbar/unsichtbar machen *)
  49.   reverseOn, reverseOff,                  (* Invertierte Schriftart ein/aus *)
  50.   wrapOn,                   (* Neue Zeile beim Überschreiten vom Zeilenende *)
  51.   wrapOff,             (* In Zeile verbleiben beim Erreichen vom Zeilenende *)
  52.   enhancedOn,           (* Schnelle, gepufferte Ausgabe (siehe TextWindows) *)
  53.   flush,          (* Gepufferte Zeichen sofort ausgeben (siehe TextWindows) *)
  54.   enhancedOff );       (* Normale, ungepufferte Ausgabe (siehe TextWindows) *)
  55.  
  56.  
  57. TYPE  SeqRange  = [MIN (Codes)..MAX (Codes)];
  58.  
  59.       SeqStr    = ARRAY [0..1] OF CHAR;
  60.       ExtSeqStr = ARRAY [0..4] OF CHAR;
  61.  
  62.       SeqType   = ARRAY SeqRange OF SeqStr;
  63.  
  64. CONST Seq = SeqType { ESC+'A', ESC+'B', ESC+'C', ESC+'D', ESC+'I', LF,
  65.                       ESC+'H', CR,      ESC+'Y', ESC+'j', ESC+'k', ESC+'E',
  66.                       ESC+'J', ESC+'K', ESC+'d', ESC+'o', ESC+'l', ESC+'L',
  67.                       ESC+'M', ESC+'b', ESC+'c', ESC+'e', ESC+'f', ESC+'p',
  68.                       ESC+'q', ESC+'v', ESC+'w', ESC+5C,  ESC+20C, ESC+6C };
  69.  
  70. (*
  71.  * Da die Sequenzen von 'gotoRowCol', 'backgroundColor' und 'writingColor'
  72.  * noch zusätzlich Zeichen verlangen, werden zur Einfachheit hier noch
  73.  * dafür speziell vorgesehene Funktionen bereitgestellt:
  74.  *)
  75.  
  76. PROCEDURE GetGotoRowColSeq ( row, col: CARDINAL; VAR seq: ARRAY OF CHAR );
  77. PROCEDURE GotoRowColSeq ( row, col: CARDINAL ): ExtSeqStr;
  78.   (* Es werden 4 Zeichen in den String 'seq' geschrieben bzw. geliefert *)
  79.  
  80. PROCEDURE GetWritingColorSeq ( color: CARDINAL; VAR seq: ARRAY OF CHAR );
  81. PROCEDURE WritingColorSeq ( color: CARDINAL ): ExtSeqStr;
  82.   (* Es werden 3 Zeichen in den String 'seq' geschrieben bzw. geliefert *)
  83.  
  84. PROCEDURE GetBackgroundColorSeq ( color: CARDINAL; VAR seq: ARRAY OF CHAR );
  85. PROCEDURE BackgroundColorSeq ( color: CARDINAL ): ExtSeqStr;
  86.   (* Es werden 3 Zeichen in den String 'seq' geschrieben bzw. geliefert *)
  87.  
  88. END VT52.
  89.